home *** CD-ROM | disk | FTP | other *** search
- /* SymbolTable.h */
-
- #ifndef Included_SymbolTable_h
- #define Included_SymbolTable_h
-
- /* SymbolTable module depends on */
- /* MiscInfo.h */
- /* Audit */
- /* Debug */
- /* Definition */
- /* SymbolTableEntry */
- /* TrashTracker */
- /* Memory */
- /* DataMunging */
-
- struct SymbolTableRec;
- typedef struct SymbolTableRec SymbolTableRec;
-
- /* forwards */
- struct TrashTrackRec;
- struct SymbolRec;
-
- /* all memory allocated through this module is from TrashTracker */
-
- /* create a new symbol table */
- SymbolTableRec* NewSymbolTable(struct TrashTrackRec* TrashTracker);
-
- /* create a new symbol table lexical level */
- MyBoolean IncrementSymbolTableLevel(SymbolTableRec* SymbolTable);
-
- /* drop the current symbol table lexical level */
- void DecrementSymbolTableLevel(SymbolTableRec* SymbolTable);
-
- /* result codes from adding a symbol to the symbol table */
- typedef enum
- {
- eAddSymbolNoErr EXECUTE(= -5152),
- eAddSymbolAlreadyExists,
- eAddSymbolNoMemory
- } AddSymbolType;
-
- /* add symbol table entry to the symbol table. returns a result code */
- AddSymbolType AddSymbolToTable(SymbolTableRec* SymbolTable,
- struct SymbolRec* SymbolToAdd);
-
- /* get a symbol from the symboldflksakdo table */
- /* it returns NIL if the entry was not found. */
- struct SymbolRec* GetSymbolFromTable(SymbolTableRec* SymbolTable, char* NameString,
- long NameStringLength);
-
- #endif
-